﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Valentia.Kinection.DataTypes
{
    /// <summary>
    /// This class contains the information of kinect devices connected to the system
    /// </summary>
    [Serializable]
    public class KinectDeviceInfo
    {
        #region Properties
        /// <summary>
        /// Gets the device ID.
        /// </summary>
        public String DeviceID { get; private set; }

        /// <summary>
        /// Gets the device key.
        /// </summary>
        public String Key { get; private set; }

        /// <summary>
        /// Gets the device name.
        /// </summary>
        public String DeviceName { get; private set; }

        /// <summary>
        /// Gets the kinect device status.
        /// </summary>
        public KinectDeviceStatus KinectDeviceStatus { get; private set; }

        /// <summary>
        /// Gets true if device is in use by the service else false.
        /// </summary>
        public bool DeviceLocked { get; private set; }
        #endregion

        #region Constructor
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="deviceID">Device ID.</param>
        /// <param name="deviceName">Device name.</param>
        /// <param name="kinectDeviceStatus">Kinect device status.</param>
        /// <param name="deviceLocked">True if device is in use by the service else false.</param>
        public KinectDeviceInfo(String deviceID, String deviceName
            , KinectDeviceStatus kinectDeviceStatus, bool deviceLocked)
        {
            this.DeviceID = deviceID;
            this.DeviceName = deviceName;
            this.KinectDeviceStatus = kinectDeviceStatus;
            this.DeviceLocked = deviceLocked;

            this.Key = deviceName;
        }
        #endregion
    }
}
